package cn.liye.pingfen.Util;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;

public class Test1 {
    static String[] strs = {"a", "b", "c", "d", "e", "f", "g", "h",
            "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t",
            "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6",
            "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L",
            "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
    public static void main(String[] args) {


            int height = 200;//高
            int width = 400;//宽
            int imageType = BufferedImage.TYPE_INT_RGB;//画板的组成，rgb是red，green，blue，红绿蓝组成
            BufferedImage image = new BufferedImage(width, height, imageType);//实例化画板对象，三个参数

            Graphics g = image.getGraphics();//实例化了一支笔
            g.setColor(Color.white);//笔的颜色为白色
            g.fillRect(0, 0, width, height);//然后将画板填充为白色，x，y为矩形左上角的坐标
            /*设置画板 */

            Random r = new Random();//实例化一个随机的对象
            int x = 25, y = 125;//这个是x，y界限
            g.setColor(Color.blue);//让验证码的颜色为蓝色
            g.setFont(new Font("宋体", Font.PLAIN, 100));//设置字体，字体为宋体，并且大小为100
            for (int i = 0; i < 4; i++) {//用for循环生成4个随机验证码
                int index = r.nextInt(62);//strs数组总共62个数，所以下标界限是0-61
                String str = strs[index];//随机取一个字符
                g.drawString(str, x, y);//画字符在画板上
                x += 100;//这个移位，不然我第一次在这个位置画A，第二次画B的时候还在这个位置不就覆盖掉了吗，所以要移动位置
            }
            /*画出四位数的验证码 */

            g.setColor(Color.green);//让画笔的颜色为绿色
            for (int i = 0; i < 10; i++) {//生成十条干扰线
                int a = r.nextInt(10);
                int b = r.nextInt(400);
                int c = r.nextInt(10) + 380;
                int d = r.nextInt(400);
                g.drawLine(a, b, c, d);//ab是干扰线的左边的横纵坐标，cd是右边的
            }
            /*画出干扰线 */

//            // 尝试写入图像
//            try {
//                ImageIO.write(image, "jpg", new File("C:\\Users\\Desktop\\项目学习\\myImage.jpg")); //此处应给出具体的文件名
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
        }
    }





